#ifndef VNAV_TRIANGLE_H
#define VNAV_TRIANGLE_H

#include "implementations/geometry/Polygon.h"

namespace vnav
{
	namespace geometry
	{
		template<typename T> 
		class Triangle: public vnav::geometry::Polygon<T>
		{
		public:
			Triangle(const T& p1, const T& p2, const T& p3);
			~Triangle();
			VNFloat getArea();
			vnav::PolygonType getPolygonType();
		protected:
		private:
		};

		template<typename T> 
		Triangle<T>::Triangle(const T& p1, const T& p2, const T& p3)
		{
			m_vertices.push_back(p1);
			m_vertices.push_back(p2);
			m_vertices.push_back(p3);
		}

		template<typename T> 
		Triangle<T>::~Triangle()
		{
		}

		template<typename T> 
		VNFloat Triangle<T>::getArea()
		{
			// todo
			return 0;
		}

		template<typename T>
		vnav::PolygonType Triangle<T>::getPolygonType()
		{
			return vnav::POLY_TYPE_TRIANGLE;
		}
	}
}

#endif